/*
 *
 * ClearDataTempMapper.java Copyright(C) 2017-2020 - 北京云星宇交通科技股份有限公司
 * 
 * @date 2019-10-08
 */
package com.yxy.ms.manager.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

import com.github.pagehelper.Page;
import com.yxy.ms.manager.common.ConditionParam;
import com.yxy.ms.manager.entity.TransactionStatistic;
import com.yxy.ms.manager.entity.po.ClearDataTemp;
import com.yxy.ms.manager.entity.po.TransExitProvince;
import com.yxy.ms.manager.entity.po.TransExitProvinceIn;

@Mapper
public interface ClearDataTempMapper {
    /**
     * <函数描述> 插入清分临时信息
     * 
     * @param record
     *            ClearDataTemp对象
     * @return
     */
    int insertSelective(ClearDataTemp record);

    /**
     * <函数描述> 更新清分临时信息
     * 
     * @param record
     *            ClearDataTemp对象
     * @return
     */
    int updateByPrimaryKeySelective(ClearDataTemp clearDataTemp);

    /**
     * <函数描述>删除清分临时信息
     * 
     * @param record
     *            ClearDataTemp对象（mid和transTypeCode）
     */
    void deleteByPrimaryKey(ClearDataTemp record);

    /**
     * <函数描述>查询清分临时表
     * 
     * @param params
     *            参数
     * @return
     */
    Page<ClearDataTemp> findAll(Map<String, Object> params);

    /**
     * <函数描述>交易类型
     * 
     * @return
     */
    List<?> findAllTransTypeCode();

    List<Integer> loadp01IssureId();

    /**
     * <函数描述>4.4.1.7.1 - ETC门架交易 - - 业务数据
     * 
     * @param conditionParam
     *            条件
     * @return
     */
    List<? extends ClearDataTemp>
        findClearDataTempRelateGantryEtcByCondition(ConditionParam<? extends ClearDataTemp> conditionParam);

    /**
     * <函数描述>4.4.1.7.2 - ETC刷卡交易 - 业务数据
     * 
     * @param conditionParam
     *            条件
     * @return
     */
    List<? extends ClearDataTemp>
        findClearDataTempRelatePayByCardEtcByCondition(ConditionParam<? extends ClearDataTemp> conditionParam);

    /**
     * <函数描述>4.4.1.7.2 - ETC刷卡交易 - 业务数据 - 出口站交易
     * 
     * @param conditionParam
     * @return
     */
    List<? extends ClearDataTemp>
        findClearDataTempRelateTransExitByCardEtcByCondition(ConditionParam<? extends ClearDataTemp> conditionParam);

    /**
     * <函数描述>4.4.1.7.2 - ETC刷卡交易 - 业务数据 - 出口站交易 - 外省明细数据
     * 
     * @param conditionParam
     * @return
     */
    List<TransExitProvince> findClearDataTempRelateTransExitProvinceByCardEtcByCondition(
        ConditionParam<? extends ClearDataTemp> conditionParam);

    /**
     * <函数描述>4.4.1.7.2 - ETC刷卡交易 - 业务数据 - 出口站交易 - 本省明细数据
     * 
     * @param conditionParam
     * @return
     */
    List<TransExitProvinceIn> findClearDataTempRelateTransExitProvinceInByCardEtcByCondition(
        ConditionParam<? extends ClearDataTemp> conditionParam);

    /**
     * <函数描述> 统计所有交易类型的处理状态的情况
     * 
     * @return
     */
    List<TransactionStatistic> getAllTransactionProcessResultStatistics();

    /**
     * <函数描述> 统计指定交易类型的处理状态的情况
     * 
     * @param transTypeCode
     *            交易类型
     * @return
     */
    List<TransactionStatistic> getTransactionProcessResultStatisticsByTransTypeCode(int[] transTypeCodes);

    /**
     * <函数描述>ETC门架交易统计情况
     * 
     * @return
     */
    List<TransactionStatistic> getEtcGantryTransactionProcessResultStatistics(int[] transTypeCodes);

    /**
     * <函数描述>出口交易统计情况
     * 
     * @return
     */
    List<TransactionStatistic> getExitTransactionProcessResultStatistics(int[] transTypeCodes);

}